//package main;

//import view.FrontView;
//import view.AdminView;
//import controller.FrontController;
//import controller.AdminController;
//import java.net.URL;
////import java.io.File;
//import javafx.embed.swing.JFXPanel;


//public class Main {
//    public static void main(String[] args) {
////        URL url = Main.class.getResource("/main/resources/videos/sample1.mp4");
////        if(url != null) {
////            System.out.println("最终验证成功！路径：" + url.getPath());
////            new FrontView().playVideo("/main/resources/videos/sample1.mp4");
////        } else {
////            System.err.println("请检查：");
////            System.err.println("1. 代码中的路径前缀是否为/main/resources/");
////            System.err.println("2. 文件是否在out/production/OnlinePlayer1/main/resources/videos/");
////        }
//
//        // 初始化JavaFX环境
//        new JFXPanel();
//        // 启动前台用户界面
//        FrontView frontView = new FrontView();
//        new FrontController(frontView);
//        frontView.setVisible(true);
//
//        // 启动后台管理界面
//        AdminView adminView = new AdminView();
//        new AdminController(adminView);
//        adminView.setVisible(true);
//    }
//}

//public class Main {
//    public static void main(String[] args) {
//        // 验证资源是否存在
//        // verifyResource("/main/resources/videos/sample1.mp4");
//
//        new JFXPanel(); // 初始化JavaFX
//        // 启动前台用户界面
//        FrontView frontView = new FrontView();
//        new FrontController(frontView);
//        frontView.setVisible(true);
//
//        // 启动后台管理界面
//        AdminView adminView = new AdminView();
//        new AdminController(adminView);
//        adminView.setVisible(true);
//    }
//
//    private static void verifyResource(String path) {
//        URL url = Main.class.getResource(path);
//        System.out.println("验证路径: " + path);
//        System.out.println(url != null ? "✅ 找到资源: " + url : "❌ 资源未找到");
//    }
//}

//package main;
//
//import javafx.application.Application;
//import javafx.application.Platform;
//import javafx.scene.Scene;
//import javafx.scene.control.Alert;
//import javafx.scene.layout.StackPane;
//import javafx.stage.Stage;
//import javafx.scene.media.Media;
//import javafx.scene.media.MediaPlayer;
//import javafx.scene.media.MediaView;
//import java.net.URL;
//
//public class Main extends Application {
//
//    @Override
//    public void start(Stage primaryStage) {
//        try {
//            // 1. 严格验证JavaFX环境
//            Platform.setImplicitExit(true);
//            System.out.println("✅ JavaFX环境检测通过");
//
//            // 2. 加载视频资源（使用绝对路径回退机制）
//            String videoPath = getVideoPath();
//            if (videoPath == null) {
//                showErrorDialog("视频文件未找到", "请检查resources/videos目录");
//                return;
//            }
//            System.out.println("🔥 最终视频路径: " + videoPath);
//
//            // 3. 初始化媒体组件
//            Media media = new Media(videoPath);
//            MediaPlayer player = new MediaPlayer(media);
//            MediaView view = new MediaView(player);
//
//            // 4. 错误处理增强
//            player.setOnError(() -> {
//                String errorMsg = player.getError() != null ?
//                        player.getError().getMessage() : "未知媒体错误";
//                System.err.println("💥 媒体错误: " + errorMsg);
//                Platform.runLater(() ->
//                        showErrorDialog("播放失败", "原因: " + errorMsg));
//            });
//
//            // 5. 界面构建
//            StackPane root = new StackPane(view);
//            Scene scene = new Scene(root, 800, 600);
//
//            // 6. 窗口设置
//            primaryStage.setTitle("在线视频播放器");
//            primaryStage.setScene(scene);
//            primaryStage.setOnCloseRequest(e -> {
//                player.dispose();
//                Platform.exit();
//            });
//
//            // 7. 启动播放（延迟100ms确保界面加载）
//            Platform.runLater(() -> {
//                primaryStage.show();
//                player.play();
//            });
//
//        } catch (Exception e) {
//            System.err.println("💀 致命错误: " + e.getMessage());
//            e.printStackTrace();
//            Platform.exit();
//        }
//    }
//
//    private String getVideoPath() {
//        // 尝试多级路径解析
//        String[] possiblePaths = {
//                "/main/resources/videos/sample1.mp4",
//                "/videos/sample1.mp4",
//                "file://D:/Web程序设计/2025年/OnlinePlayer1/src/main/resources/videos/sample1.mp4"
//        };
//
//        for (String path : possiblePaths) {
//            URL url = getClass().getResource(path);
//            if (url != null) {
//                return url.toExternalForm();
//            }
//            System.out.println("⚠️ 尝试路径失败: " + path);
//        }
//        return null;
//    }
//
//    private void showErrorDialog(String title, String message) {
//        Alert alert = new Alert(Alert.AlertType.ERROR);
//        alert.setTitle(title);
//        alert.setHeaderText(null);
//        alert.setContentText(message);
//        alert.showAndWait();
//        Platform.exit();
//    }
//
//    public static void main(String[] args) {
//        // JavaFX启动配置
//        System.setProperty("prism.order", "sw");
//        System.setProperty("javafx.preloader", "none");
//
//        // 线程安全启动
//        new Thread(() -> Application.launch(Main.class, args)).start();
//    }
//}


package main;  // 添加包声明

import javax.swing.SwingUtilities;  // 正确导入SwingUtilities
import javafx.embed.swing.JFXPanel;
import service.AuthService;         // 修正拼写错误
import view.LoginView;
import controller.LoginController;

public class Main {
    public static void main(String[] args) {
        // 初始化JavaFX环境
        new JFXPanel();

        // 启动登录界面
        SwingUtilities.invokeLater(() -> {
            LoginView loginView = new LoginView();
            AuthService authService = AuthService.getInstance();
            new LoginController(loginView, authService);
            loginView.setVisible(true);
        });
    }
}




